﻿#ifndef IMGBUTTON_H
#define IMGBUTTON_H

#include <QObject>
#include <QPushButton>
#include <QColor>
#include <QPixmap>
#include <QPainter>
#include <QMouseEvent>


class ImgButton : public QPushButton
{
    Q_OBJECT
public:
    explicit ImgButton(QWidget* parent = nullptr);
    // 设置按钮颜色
    void setButtonColor(const QColor& color);

    // 设置按钮图片
    void setButtonIcon(const QPixmap& icon, Qt::Alignment alignment = Qt::AlignLeft);

    // 设置字体颜色
    void setTextColor(const QColor& color);

    // 设置背景透明度
    void setBackgroundOpacity(qreal opacity);

protected:
    void paintEvent(QPaintEvent* event) override;
    void enterEvent(QEvent* event) override; // 鼠标滑过事件
    void leaveEvent(QEvent* event) override; // 鼠标离开事件
    void mousePressEvent(QMouseEvent* event) override; // 鼠标点击事件
    void mouseReleaseEvent(QMouseEvent* event) override; // 鼠标释放事件

private:
    QColor m_buttonColor; // 按钮颜色
    QPixmap m_icon;       // 按钮图片
    Qt::Alignment m_iconAlignment; // 图片位置
    QColor m_textColor;   // 字体颜色
    qreal m_backgroundOpacity; // 背景透明度

    QColor m_currentColor; // 当前按钮颜色
    qreal m_currentOpacity; // 当前背景透明度
};

#endif // IMGBUTTON_H
